home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 98 / Skunkware 98.iso / src / mail / pine3.96.tar.gz / pine3.96.tar / pine3.96 / imap / README < prev    next >
Text File  |  1995-09-05  |  9KB  |  186 lines

  1.          IMAP2bis/c-client Development Environment
  2.                  5 September 1995
  3.                    Mark Crispin
  4.  
  5. NOTE: IMAP2bis toolkit 3.6 is the FINAL version of this toolkit that
  6. supports the IMAP2 protocol.  The next IMAP toolkit will be 4.0, which
  7. supports IMAP4 and has *major* internal and external changes.  At the time
  8. of this writing toolkit 4.0 is in alpha test.
  9.  
  10. Copyright NOTICE:
  11.  
  12. Some portions Copyright 1988 by The Leland Stanford Junior University.
  13. Copyright 1994 by the University of Washington.
  14.  
  15.  Permission to use, copy, modify, and distribute this software and its
  16. documentation for any purpose and without fee is hereby granted, provided
  17. that the above copyright notices appear in all copies and that both the
  18. above copyright notices and this permission notice appear in supporting
  19. documentation, and that the name of the University of Washington or The
  20. Leland Stanford Junior University not be used in advertising or publicity
  21. pertaining to distribution of the software without specific, written prior
  22. permission.  This software is made available "as is", and
  23. THE UNIVERSITY OF WASHINGTON AND THE LELAND STANFORD JUNIOR UNIVERSITY
  24. DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, WITH REGARD TO THIS SOFTWARE,
  25. INCLUDING WITHOUT LIMITATION ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  26. FITNESS FOR A PARTICULAR PURPOSE, AND IN NO EVENT SHALL THE UNIVERSITY OF
  27. WASHINGTON OR THE LELAND STANFORD JUNIOR UNIVERSITY BE LIABLE FOR ANY
  28. SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
  29. RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
  30. CONTRACT, TORT (INCLUDING NEGLIGENCE) OR STRICT LIABILITY, ARISING OUT OF
  31. OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  32.  
  33.  
  34. BUG REPORTING ADDRESS:
  35.  
  36.      Although this software is not "supported" per se, bugs or questions
  37. regarding this software may be reported to the author:
  38.  Internet:    MRC@CAC.Washington.EDU
  39.  Postal mail:    Mark Crispin
  40.         University of Washington
  41.         Networks and Distributed Computing
  42.         Seattle, WA  98195-4527
  43.         USA
  44.  Phone:        +1 (206) 543-5762
  45.  FAX:        +1 (206) 685-4045
  46.  
  47. CONTENTS:
  48.  
  49.      This directory tree contains the following:
  50.  
  51. Documentation:
  52.  . README        this file
  53.  . RFC1176.TXT        IMAP2 protocol RFC
  54.  . IMAP2bis.TXT        temporary documentation of MIME extensions for IMAP
  55.  
  56. Sources:
  57.  . Makefile        master makefile for Unix
  58.  . ANSI            ANSI C sources
  59.  . non-ANSI        source converted into pre-ANSI C
  60.  
  61. c-client courtesy links:
  62.  . c-client        c-client Application Program Interface (API)
  63.  . ms            Unix MS client (MM-like interface)
  64.  . ipopd        Unix POP2/POP3 servers with IMAP2 client support
  65.  . imapd        IMAP2 server (on Unix, runs under inetd)
  66.  
  67. NOTES ON THE VARIOUS COMPONENTS:
  68.  
  69.      ms runs under BSD Unix and requires Columbia's CCMD command package in
  70. a ccmd/ directory at the same level as the root of this directory tree.  If
  71. ccmd is not available, the build of ms is ignored.
  72.  
  73.      mtest has been run under Unix, DOS, Macintosh, and TOPS-20.  It is a
  74. very primitive interface, however, and is suited mainly as a model of how
  75. to write a main program for the C-Client.  You should take a look at the
  76. source to figure out how to use it.  Briefly, it first asks for a mailbox
  77. name (either a local file path or an IMAP mailbox in the form
  78. {hostname}mailbox) and then puts you in a command mode where "?" will give
  79. you a list of commands.
  80.  
  81.      The Unix clients ms and/or mtest may be installed on a system
  82. directory.  There is also a man page for ms.  The Pine mailer for Unix and
  83. DOS has IMAP2 support, and is available separately on the
  84. FTP.CAC.Washington.EDU archives.
  85.  
  86.      The Unix servers ipop2d, ipop3d, and imapd should be installed in a
  87. system daemon directory, and invoked by your /etc/inetd.conf file with
  88. lines such as:
  89.  
  90. pop    stream    tcp    nowait    root    /usr/local/etc/ipop2d    ipop2d
  91. pop3    stream    tcp    nowait    root    /usr/local/etc/ipop3d    ipop3d
  92. imap    stream    tcp    nowait    root    /usr/local/etc/imapd    imapd
  93.  
  94.      Note that different variants of Unix have different versions of inetd,
  95. so you should verify the precise form of these commands (for example, some
  96. versions of inetd do not require the "nowait").
  97.  
  98.      You may also have to edit your /etc/services (or Yellow Pages,
  99. NetInfo, etc. equivalent) to register these services, such as:
  100.  
  101. pop        109/tcp        postoffice
  102. pop3        110/tcp
  103. imap        143/tcp
  104.  
  105.      If you want to enable the rimap capability, which allows users with a
  106. suitable client and .rhosts file on the server to access IMAP services
  107. without transmitting her password in the clear over the network, you need
  108. to have /etc/rimapd as a link to the real copy of imapd.  Assuming you have
  109. imapd installed on /usr/local/etc as above:
  110.     % ln -s /usr/local/etc/imapd /etc/rimapd
  111.  
  112.      Technical note: rimap works by having the client routine tcp_aopen()
  113. invoke `rsh _host_ exec /etc/rimapd' in an child process, and then
  114. returning pipes to that process' standard I/O instead of a TCP socket.  You
  115. can set up `e-mail only accounts' by making the shell be something which
  116. accepts only that string and not ordinary Unix shell commands.
  117.  
  118.      Before doing a make on UNIX, you should read the top-level Makefile
  119. and see if your system type is known.  The various system types are
  120. three-letter codes, and are described in more detail in the c-client
  121. Makefile.  If your system type is known, then use this as the make option.
  122. After the first time you do a make, this option is remembered in a file
  123. called OSTYPE, so just typing "make" suffices.
  124.  
  125.      For example, if you are using an IBM AIX 3.2 system on an RS/6000,
  126. your system type is a32, and the appropriate command is:
  127.     make a32
  128.  
  129.      There are various other make options, described in the c-client
  130. Makefile.  A common additional option is to enable the mbox driver, which
  131. will move mail from /usr/spool/mail into a file called mbox in the user's
  132. home directory.  This is done by specifying the EXTRADRIVERS variable, as
  133. in:
  134.     make a32 EXTRADRIVERS=mbox
  135.  
  136.      If your system type is not in the top-level Makefile, you first need
  137. to identify whether your compiler supports ANSI C.  This will determine
  138. what source tree to use.  [Note that some compilers, such as Ultrix,
  139. support some aspects of ANSI C but not others; c-client really beats on the
  140. full prototyping capability of ANSI C so you have to use the non-ANSI
  141. source tree for such systems.]  Next, identify a system which is somewhat
  142. close to the system you have.  For BSD-like systems, try the bsd port; for
  143. SVR4-like systems, try the sv4 port.
  144.  
  145.      It's probably best to see if the unmodified bsd or sv4 ports will work
  146. on your system before inventing a new port.  If you must invent a new port,
  147. you need to create an entry in the top-level and c-client Makefiles for
  148. your new port, as well as os_???.h and os_???.c files with the appropriate
  149. OS-dependent support for that system.  If you send the result back to us,
  150. we will make it available for others using your particular system type.
  151.  
  152.      If you are building a DOS client, you will need a TCP/IP stack
  153. installed on your DOS system along with its development environment.  The
  154. currently supported stacks are Beame & Whiteside, PC-NFS, Novell, PC/IP,
  155. Waterloo, and Winsock.  mtest and a version of Pine called PC Pine run
  156. under DOS.  You do not use the top-level Makefile under DOS, nor do you
  157. build any components other than c-client.  The DOS makefiles are found in
  158. the c-client directory in the ANSI source tree, and are named according to
  159. the TCP/IP stack in use (e.g. makefile.dnv for DOS/Novell)
  160.  
  161.      If you are building a Macintosh client, you will need MacTCP installed
  162. on your system as well as the MacTCP C includes and libraries.  mtest runs
  163. on the Macintosh, and is routinely built with THINK C.  Contact me for a
  164. THINK C project file and cute icon for it.
  165.  
  166.      If you use a Mac C compiler with 2-byte ints (such as THINK C's normal
  167. mode) you will need to fix some bugs in the MacTCP C includes and libraries
  168. to prevent it from generating bad code, since those MacTCP files violate
  169. Apple's standards of always using explicit shorts or longs, never ints.
  170. You could avoid this if you set 4-byte ints in THINK C; however, the ANSI
  171. and UNIX libraries in THINK C use 2-byte ints so you will also need to
  172. build 4-byte int versions of these.  c-client itself is 2-byte int or
  173. 4-byte int clean; it can be used in either mode.
  174.  
  175.      The most important bug in the MacTCP files that you need to fix is in
  176. the file AddressXlation.h, you need to change the definition of the rtnCode
  177. member of the hostInfo structure to be long instead of int.  There are
  178. several other changes you need to make if you decide to compile dnr.c under
  179. THINK C instead of using the Apple-supplied object file; see me for details
  180. if you decide to undertake such an effort.
  181.  
  182.      The VMS port may or may not build.  You're on your own.
  183.  
  184.      The TOPS-20 port is known not to build, and I'm not going to bother
  185. fixing it since the newer IMAP-4 toolkit builds on TOPS-20.
  186.